home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / Mops 3.4.sea / Quick Edit ƒ / Subject Glossary / Toolbox < prev    next >
Text File  |  1996-01-14  |  4KB  |  112 lines

  1.  \ 14Jan96 DBH
  2. NAMED TOOLBOX ACCESS
  3.  
  4. SYSCALL        ( --  :  TrapName )    ToolBox    CALLSMOD.txt
  5.     Used to compile a call to a Macintosh Toolbox routine. Simply 
  6.     follow  syscall with the name of the routine.  No need to realign
  7.     the stack as this is taken care of automatically.  Execution only.  
  8.     You have to "pre-declare" any system call you're going to use, outside any 
  9.     definition, and before any definition in which you do the call.  It doesn't 
  10.     matter if you use SYSCALL several times over for the one call—in different 
  11.     source files, say—subsequent ones will be ignored.  The names following SYSCALL
  12.     are case-sensitive.  See CALL.
  13.  
  14.  
  15. CALL    --  : TrapName
  16.     Used to compile a call to a Macintosh Toolbox routine.  Simply follow 
  17.     call with the name of the routine.  Compilation only.  
  18.  
  19. GLOBAL    -- addr  : globalname
  20.     When followed by the name of a Mac system global variable, leaves the 
  21.     memory location.  Example: global ticks @ returns the number of ticks 
  22.     since system startup.  
  23.  
  24. KONST    -- n  : konstName
  25.     Returns a Mac system constant.  For example, konst kAEQuitApplication 
  26.     will return the event id 'quit' on the stack.  
  27.  
  28.  
  29.  
  30.  
  31. STACK MANIPULATION FOR TOOLBOX CALLS
  32.  
  33. Important note for Mops 2.7.  These words are no longer necessary if you
  34. use the SYSCALL mechanism.
  35.  
  36. We need the following words to make it easy to convert our Mops stack items,
  37. which are always 32-bit, to and from 16-bit items as required by many Mac
  38. Toolbox calls.
  39.  
  40. I->L    16-bit-num -- 32-bit-num
  41.     Converts the 16-bit half-cell on top of stack into a full 32-bit Mops 
  42.     cell, extending the sign bit.  i->l is useful in handling the result 
  43.     from Macintosh ROM routines that return a 16-bit signed integer on the 
  44.     stack.  i->l differs from Extend in that i->l pushes two bytes onto 
  45.     the stack while extending the sign, whereas extend only extends the 
  46.     sign of a 16-bit integer contained in the 32-bit cell on top of stack, 
  47.     converting it into a 32-bit signed integer.  Word0, a related word, 
  48.     pushes two zero bytes onto the stack.  
  49.  
  50. MAKEINT    32-bit-num -- 16-bit-num
  51.     Drops the higher 16 bits of the number on top of the stack.  This is 
  52.     handy in Toolbox calls that require an Int value. 
  53.     
  54. W    -- 16-bit-value  : value
  55.     Useful for compiling a 16 bit number for toolbox calls.  Same as n 
  56.     makeint except n must be known at compilation time.  More compact than 
  57.     using n makeint.  
  58.  
  59. WORD0    n -- 16-zero-bits
  60.     Pushes 16 zero bits (hex 0000) onto the stack.  You can use word0 to 
  61.     prepare for a Toolbox function call for the result, if the function 
  62.     returns a Toolbox integer.  
  63.  
  64. TBOOL    b -- tbool
  65.     Makes a Mops boolean into a Toolbox boolean.  Note that tbool should 
  66.     only be used as a setup for a Toolbox call as the stack will be 
  67.     mis-aligned until the Toolbox call is done.  
  68.  
  69.  
  70. PACK    x y  -- x:y
  71.     Packs two 32-bit numbers into one 32-bit number.  Only the lower 16 
  72.     bits of x and y are used.  You can use pack to convert a coordinate 
  73.     point into a Toolbox-compatible point.  
  74.  
  75. UNPACK    x:y -- x y
  76.     Unpacks a Toolbox point and puts the two integers on the stack.  
  77.     Unpack is the opposite of pack.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83. MISCELLANEOUS
  84.  
  85. STR255  addr len -- ^buf255  
  86.     Converts text beginning at addr for len characters to a str255 type
  87.     string at buf255, leaving the addr of buf255.  Note that you should use
  88.     the string right away as the next call to str255 will overwrite the 
  89.     buffer.
  90.  
  91.  
  92. :PROC    --  : name
  93.     Begins compilation of a word that to the Toolbox behaves like a Pascal 
  94.     procedure or function.  You can use a :proc word when a Toolbox 
  95.     routine requires a procedural argument.  
  96.  
  97. ;PROC    --
  98.     Ends compilation of word defined with :proc
  99.  
  100. 'TYPE    -- 4bytestring  :  XXXX
  101.     Given 4 ascii characters in the input stream, a 4bytestring will 
  102.     be left on the stack.  This data type is also known as a PACKED 
  103.     ARRAY[1..4] OF CHAR; in Pascal.  
  104.  
  105. TRAP$    --  :  trap#
  106.     Compiles a toolbox trap if the Tools module is not loaded.  The new 
  107.     syntax is, e.g.trap$ A9FF 
  108.  
  109. FDOS$    --  : trap#
  110.     Compiles a toolbox trap for I/O if the Tools module is not loaded.  
  111.     The new syntax is, e.g.trap$ fdos$ A000 
  112.